import * as nls from 'vscode-nls';

const localize: nls.LocalizeFunc = nls.loadMessageBundle();

export namespace Common {
    export const loadingExtension = localize('Common.loadingEQExtension', 'EQ Language extension loading...');
    export const learnMore = localize('Common.learnMore', 'Learn more');
    export const doNotShowAgain = localize('Common.doNotShowAgain', 'Do not show again');
    export const bannerLabelYes = localize('Common.bannerLabelYes', 'Yes');
    export const bannerLabelNo = localize('Common.bannerLabelNo', 'No');
}

export namespace OutputChannelNames {
    export const languageServer = localize('OutputChannelNames.languageServer', 'EQ Language Server');
    export const eq = localize('OutputChannelNames.eq', 'EQ');
    export const eqTest = localize('OutputChannelNames.EQTest', 'EQ Test Log');
}

export namespace Diagnostics {
    export const warnSourceMaps = localize(
        'diagnostics.warnSourceMaps',
        'Source map support is enabled in the EQ Extension, this will adversely impact performance of the extension.',
    );
    export const disableSourceMaps = localize('diagnostics.disableSourceMaps', 'Disable Source Map Support');
    export const enableSourceMapsAndReloadVSC = localize(
        'diagnostics.enableSourceMapsAndReloadVSC',
        'Enable and reload Window.',
    );
    export const warnBeforeEnablingSourceMaps = localize(
        'diagnostics.warnBeforeEnablingSourceMaps',
        'Enabling source map support in the EQ Extension will adversely impact performance of the extension.',
    );
    export const invalidEQPathInDebuggerSettings = localize(
        'diagnostics.invalidEQPathInDebuggerSettings',
        'You need to select a EQ interpreter before you start debugging.\n\nTip: click on "Select Python Interpreter" in the status bar.',
    );
    export const invalidEQPathInDebuggerLaunch = localize(
        'diagnostics.invalidEQPathInDebuggerLaunch',
        'The EQ path in your debug configuration is invalid.',
    );
}

export namespace Interpreters {
    export const installingEQ = localize('Interpreters.installingEQ', 'Installing EQ into Environment...');
}

export namespace LanguageService {
    export const statusItem = {
        name: localize('LanguageService.statusItem.name', 'EQ IntelliSense Status'),
        text: localize('LanguageService.statusItem.text', 'Partial Mode'),
        detail: localize('LanguageService.statusItem.detail', 'Limited IntelliSense provided by Pylance'),
    };
    export const virtualWorkspaceStatusItem = {
        detail: localize(
            'LanguageService.virtualWorkspaceStatusItem.detail',
            'Limited IntelliSense supported by Jedi and Pylance',
        ),
    };
}

export namespace ExtensionSurveyBanner {
    export const bannerMessage = localize(
        'ExtensionSurveyBanner.bannerMessage',
        'Can you please take 2 minutes to tell us how the EQ extension is working for you?',
    );
    export const bannerLabelYes = localize('ExtensionSurveyBanner.bannerLabelYes', 'Yes, take survey now');
    export const bannerLabelNo = localize('ExtensionSurveyBanner.bannerLabelNo', 'No, thanks');
    export const maybeLater = localize('ExtensionSurveyBanner.maybeLater', 'Maybe later');
}

export namespace InterpreterQuickPickList {
    export const browsePath = {
        label: localize('InterpreterQuickPickList.browsePath.label', 'Find...'),
        detail: localize(
            'InterpreterQuickPickList.browsePath.detail',
            'Browse your file system to find a EQ interpreter.',
        ),
        openButtonLabel: localize('eq.command.eq.setInterpreter.title', 'Select Interpreter'),
        title: localize('InterpreterQuickPickList.browsePath.title', 'Select EQ interpreter'),
    };
}

export namespace DebugConfigStrings {
    export namespace fastapi {
        export const enterAppPathOrNamePath = {
            title: localize('debug.fastapiEnterAppPathOrNamePathTitle', 'Debug FastAPI'),
            prompt: localize(
                'debug.fastapiEnterAppPathOrNamePathPrompt',
                "Enter the path to the application, e.g. 'main.py' or 'main'",
            ),
            invalid: localize('debug.fastapiEnterAppPathOrNamePathInvalidNameError', 'Enter a valid name'),
        };
        export const snippet = {
            name: localize('python.snippet.launch.fastapi.label', 'Python: FastAPI'),
        };
    }
}